간단히 말하자면 git bisect
을 사용하면 특정 커밋 해쉬를 이진 탐색으로 찾아낼 수 있다.
현재 버전이 2.5.5이고, 2.5.5 버전의 코드에 버그 A가 있다고 하자.
버그 A가 없는 버전이 2.3.1 인 것을 안다면, 버그 A는 2.3.1 ~ 2.5.5 사이에 있다.
그 버그 A를 찾기 위해 일일히 커밋 히스토리를 따라 checkout 할 수도 있지만 이는 매우 비효율적이다. 대신 git bisect
를 사용할 수 있다.
git bisect start
를 통해 이진 탐색모드를 시작한다.git bisect bad
를 입력하거나 git bisect bad <bad-commit-hash>
를 입력하여 탐색할 범위의 끝을 정한다.git bisect good <good-commit-hash>
를 입력한다.git bisect bad
, 버그가 사라졌다면 git bisect good
를 다시한번 입력한다. 이렇게 점점 범위를 좁혀나가다 보면 버그가 발생하는 특정 커밋을 찾을 수 있을 것이다.git bisect reset
커맨드로 탐색 모드를 종료하고 1번에서 checkout 했던 브랜치로 돌아갈 수 있다.